window.onload = function() {
    $.get('/alljs', function(e) {
        $.ajaxSettings.async = false;
        for (let index = 0; index < e.length; index++) {
            const js = e[index];

            function loadjs(pjsName) {
                const jsName = pjsName;
                $.get('/javascripts/' + jsName, function() {
                    let obj = jsName.replace('.js', '');
                    //eval('(' + 'window[js].init()' + ')');
                    let fun = window[obj].init;
                    if (typeof fun !== "function") return;
                    fun();
                });
            };

            loadjs(js);
        }
        $.ajaxSettings.async = true;
    });
}

window.guid = function() {
    let len = 32;
    let radix = 16;
    var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
    var uuid = [],
        i;
    radix = radix || chars.length;

    if (len) {
        // Compact form
        for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
    } else {
        // rfc4122, version 4 form
        var r;

        // rfc4122 requires these characters
        uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
        uuid[14] = '4';

        // Fill in random data. At i==19 set the high bits of clock sequence as
        // per rfc4122, sec. 4.1.5
        for (i = 0; i < 36; i++) {
            if (!uuid[i]) {
                r = 0 | Math.random() * 16;
                uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
            }
        }
    }

    return uuid.join('');
}

window.getQueryVariable = function(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        if (pair[0] == variable) { return pair[1]; }
    }
    return (false);
}

window.mapImage = function() {
    let img = window.getQueryVariable('img');
    if (img == false) {
        img = 'default.jpg';
    }
    return img;
}
window.allProperties = function(object, ignoresProperties) {
    let result = "";
    let index = 1;

    function get(obj) {
        for (var p in obj) {
            debugger;
            if (ignoresProperties.indexOf(p) > -1) {
                continue;
            }
            if (typeof obj[p] === "function") {
                continue;
            }
            if (typeof obj[p] === "object") {
                get(obj[p]);
                continue;
            }
            result += index + ". " + p + " : " + obj[p];
            result += "\r\n";
            index++;
        }
    }
    get(object);
    return result;
}